package org.xsk.algorithm.sort;

/**
 * 比较测试： n^2/2
 * 交换次数： n^2/4
 */
public class BubbleSort {

    /**
     * @param args 数组
     */
    public void bubbleSort(int[] args) {
        if (null == args){
            throw new NullPointerException();
        }
        if (args != null && args.length >= 2) {
            for (int i = args.length - 1; i > 0; i--) {
                for (int j = 0; j < i; j++) {
                    if (args[j] > args[j + 1]) {
                        swap(j, j + 1, args);
                    }
                }

            }
        }

    }

    /**
     * @param currentIndex 当前位置
     * @param nextIndex     下一个位置
     * @param arr       数组
     */
    public void swap(int currentIndex,int nextIndex,int[] arr){
        int temp = arr[currentIndex];
        arr[currentIndex] = arr[nextIndex];
        arr[nextIndex] = temp;
    }
}
